package com.ruleengine.task.factory;

import java.io.InputStream;

import com.ruleengine.parser.exception.RuleEngineParserException;
import com.ruleengine.task.impl.WorkflowTask;

public interface IWorkflowFactory {
    
    /**将工作流配置解析成WorkflowTask对象，
     * WorkflowTask对象是工作流的内部表示对象。
     * @param taskConfig 工作流配置
     * @param codeing taskConfig的编码类型
     * @return 解析后的工作流对象
     * @throws RuleEngineParserException
     */
    public WorkflowTask createWorkflow(InputStream taskConfig,String codeing) throws RuleEngineParserException;
    
    /**将工作流配置解析成WorkflowTask对象，
     * 解析时使用默认的编码方式UTF-8。
     * @param taskConfig 工作流配置
     * @return 解析后的工作流对象
     * @throws RuleEngineParserException
     */
    public WorkflowTask createWorkflow(InputStream taskConfig) throws RuleEngineParserException;
}
